In [1]:
import pandas as pd
import plotly
In [2]:
import plotly.graph_objects as go

import pandas as pd

from datetime import datetime

dic={"Jan":"01","Feb":"02","Mar":"03","Apr":"04","May":"05","Jun":"06","Jul":"07","Aug":"08","Sep":"09","Oct":"10","Nov":"11","Dec":"12"}
def convert(list):
    for i in range(len(list)):
        month=dic[list[i].split(" ")[0]]
        date=list[i].split(" ")[1]
        year=list[i].split(" ")[2]
        list[i]=year+"-"+month+"-"+date
    return list
        

# Load data
df = pd.read_csv(
    "https://raw.githubusercontent.com/chuantianlin/data/main/crime2.csv")
date=convert(df['date'].tolist())

date.sort(key = lambda date: datetime.strptime(date, '%Y-%m-%d'))

count=df['count'].tolist()
# Create figure
fig = go.Figure()

fig.add_trace(
    go.Scatter(x=date, y=count))

# Set title
fig.update_layout(
    title_text="number of Crimes in DC"
)

# Add range slider
fig.update_layout(
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,
                     label="1m",
                     step="month",
                     stepmode="backward"),
                dict(count=6,
                     label="6m",
                     step="month",
                     stepmode="backward"),
                dict(count=1,
                     label="YTD",
                     step="year",
                     stepmode="todate"),
                dict(count=1,
                     label="1y",
                     step="year",
                     stepmode="backward"),
                dict(step="all")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date"
    )
)

fig.show()